package com.ruoyi.business.service;

import com.ruoyi.business.app.bo.AppMerchantQueryBo;
import com.ruoyi.business.app.bo.HcxMerchantJoinBo;
import com.ruoyi.business.app.vo.AppMerchantDetailVo;
import com.ruoyi.business.app.vo.AppMerchantVo;
import com.ruoyi.business.bo.HcxMerchantAddBo;
import com.ruoyi.business.bo.HcxMerchantEditBo;
import com.ruoyi.business.bo.HcxMerchantQueryBo;
import com.ruoyi.business.domain.HcxMerchant;
import com.ruoyi.business.vo.HcxMerchantVo;
import com.ruoyi.common.core.domain.entity.HcxMerchantType;
import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 商家Service接口
 *
 * @author wsdz
 * @date 2022-08-17
 */
public interface IHcxMerchantService extends IServicePlus<HcxMerchant> {
    /**
     * 查询单个
     *
     * @return
     */
    HcxMerchantVo queryById(Long id);

    /**
     * 查询列表
     */
    TableDataInfo<HcxMerchantVo> queryPageList(HcxMerchantQueryBo bo);

    /**
     * 查询列表
     */
    List<HcxMerchantVo> queryList(HcxMerchantQueryBo bo);

    /**
     * 根据新增业务对象插入商家
     *
     * @param bo 商家新增业务对象
     * @return
     */
    Boolean insertByAddBo(HcxMerchantAddBo bo);

    /**
     * 根据编辑业务对象修改商家
     *
     * @param bo 商家编辑业务对象
     * @return
     */
    Boolean updateByEditBo(HcxMerchantEditBo bo);

    /**
     * 校验并删除数据
     *
     * @param ids     主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 导入数据
     *
     * @param hcxMerchantList 排污口水质数据
     * @return String
     */
    String importHcxMerchant(List<HcxMerchantVo> hcxMerchantList);

    /**
     * 查询列表
     */
    TableDataInfo<AppMerchantVo> queryAppPageList(AppMerchantQueryBo bo);

    /**
     * 查询单个
     *
     * @return
     */
    AppMerchantDetailVo queryAppById(Long id);

    Boolean join(HcxMerchantJoinBo bo);

    /**
     * @description: 审核商家
     * @author: kubilewang
     * @date: 2022/8/22 10:35
     * @param: []
     * @Return: []
     **/
    Boolean audit(HcxMerchantEditBo bo);

    HcxMerchantVo queryDetail();

    Boolean updateMerchantYingye(HcxMerchantEditBo bo);

    List<HcxMerchantType> classification();
}
